package com.gengzp.mq.server.facade;

import com.gengzp.mq.common.model.entity.GengzpMqTopic;

/**
 * @ClassName IGengzpMqTopicFacadeService
 * @Description 消息队列主题管理门面层接口
 * @Author gengzp
 * @Date 2025/7/10 13:53
 */
public interface IGengzpMqTopicFacadeService {

    /**
     * 根据主题名查询主题信息
     *
     * @param topicName 主题名
     * @return 主题信息
     */
    GengzpMqTopic searchTopicByName(String topicName);

    /**
     * 创建topic
     *
     * @param topicName 主题信息
     */
    void addTopic(String topicName, String description);

    /**
     * 保存主题关联的消费者信息
     *
     * @param topic               主题名
     * @param consumerGroup       消费者组
     * @param consumerServiceName 消费者服务名
     * @param consumerServiceIp   消费者服务IP
     */
    void saveTopicRelationConsumer(String topic, String consumerGroup, String consumerServiceName, String consumerServiceIp);

    /**
     * 移除主题关联的消费者信息
     *
     * @param topic               主题名
     * @param consumerServiceName 消费者服务名
     * @param consumerServiceIp   消费者服务IP
     */
    void removeTopicRelationConsumer(String topic, String consumerServiceName, String consumerServiceIp);

}
